/* Copyright (c) 2000-2006 hamcrest.org
*/
package org.hamcrest.beans;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.beans.HasProperty.hasProperty;
import static org.hamcrest.core.IsNot.not;
import org.hamcrest.AbstractMatcherTest;
import org.hamcrest.Matcher;
/**
* @author Iain McGinniss
* @author Nat Pryce
* @author Steve Freeman
* @since 1.1.0
*/
public class HasPropertyTest extends AbstractMatcherTest {
private final HasPropertyWithValueTest.BeanWithoutInfo bean
= new HasPropertyWithValueTest.BeanWithoutInfo("a bean");
@Override
protected Matcher<?> createMatcher() {
return hasProperty("irrelevant");
}
public void testReturnsTrueIfPropertyExists() {
assertThat(bean, hasProperty("writeOnlyProperty"));
}
public void testReturnsFalseIfPropertyDoesNotExist() {
final Matcher<Object> hasProperty = hasProperty("aNonExistentProp");
assertThat(bean, not(hasProperty));
assertMismatchDescription("no \"aNonExistentProp\" in <[Person: a bean]>", hasProperty, bean);
}
public void testDescribeTo() {
assertDescription("hasProperty(\"property\")", hasProperty("property"));
}
}